package gestionBDD;

import java.sql.* ;

import interne.Image ;

public class requetesImage {
	
	/*
	 * Ajoute une entrée dans la table image
	 * Entrée : Objet Image avec tous les attributs sauf id_image
	 */
	public static void ajouterImage(Image i) throws SQLException {
		try {
			String sql = "INSERT INTO IMAGE (chemin, apn, resolution, distance_focale, ouverture, " +
					"objectif, sensibilite_iso, vitesse_obturation) " +
					"VALUES(?,?,?,?,?,?,?,?)";
			PreparedStatement statement = accesBDD.getInstance().prepareStatement(sql);
			statement.setObject(1, i.getChemin());
			statement.setObject(2, i.getAppareilPhoto());
			statement.setObject(3, i.getResolution());
			statement.setObject(4, i.getDistFocale());
			statement.setObject(5, i.getOuverture());
			statement.setObject(6, i.getObjectif());
			statement.setObject(7, i.getSensibiliteISO());
			statement.setObject(8, i.getVitesseObturation());
			statement.executeUpdate();
			statement.close();
		}
		catch(SQLException e) {
			System.out.println("ajouterImage() : " + e) ;
		}
	}
	
	/*
	 * Supprime un entrée de la table image
	 * Entrée : Objet Image avec id_image
	 */
	public static void supprimerImage(Image i) throws SQLException {
		try {
			String sql = "DELETE FROM IMAGE where IMAGE.id_image = ?" ;
			PreparedStatement statement = accesBDD.getInstance().prepareStatement(sql);
			statement.setObject(1, i.getIdImage());
			statement.executeUpdate();
			statement.close();
			accesBDD.getInstance().commit();
			System.out.println("COUCOU5");
			System.out.println(i.getIdImage());
		}
		catch(SQLException e) {
			System.out.println(e) ;
		}
	}
	
	/*
	 * Modifie l'entrée d'une table
	 * Entrée : Objet Image i avec tous les attributs (id_album inclus) 
	 */
	public static void modifierImage(Image i) throws SQLException {
		try {
			String sql = "UPDATE IMAGE SET apn = ?, resolution = ?, distance_focale = ?, ouverture = ?," +
					"objectif = ?, sensibilite_iso = ?, vitesse_obturation = ? WHERE id_image = ?";
			PreparedStatement statement = accesBDD.getInstance().prepareStatement(sql);
			statement.setObject(1, i.getAppareilPhoto());
			statement.setObject(2, i.getResolution());
			statement.setObject(3, i.getDistFocale());
			statement.setObject(4, i.getOuverture());
			statement.setObject(5, i.getObjectif());
			statement.setObject(6, i.getSensibiliteISO());
			statement.setObject(7, i.getVitesseObturation());
			statement.setObject(8, i.getIdImage());
			statement.executeUpdate();
			statement.close();
			accesBDD.getInstance().commit();
		}
		catch(SQLException e) {
			System.out.println(e) ;
		}
	}
	
	/*
	 * Trouve les attributs d'une image avec son chemin
	 * Entrée : Objet image avec l'attribut chemin
	 */
	public static Image trouverAvecChemin(Image i) throws SQLException {
		try {
			String sql = "SELECT * FROM IMAGE WHERE chemin = ?" ;
			PreparedStatement statement = accesBDD.getInstance().prepareStatement(sql);
			statement.setObject(1, i.getChemin());
	        ResultSet rs = statement.executeQuery();
	        rs.next();
	        i.setIdImage(rs.getInt("ID_IMAGE"));
	        i.setAppareilPhoto(rs.getString("APN"));
	        i.setResolution(rs.getString("RESOLUTION"));
	        i.setDistFocale(rs.getString("DISTANCE_FOCALE"));
	        i.setOuverture(rs.getString("OUVERTURE"));
	        i.setObjectif(rs.getString("OBJECTIF"));
	        i.setSensibiliteISO(rs.getString("SENSIBILITE_ISO"));
	        i.setVitesseObturation(rs.getString("VITESSE_OBTURATION"));
			statement.close();
			return i ;
		}
		catch(Exception e) {
			System.out.println("trouverAvecChemin() : " + e) ;
			return null ;
		}
	}
	
	/*
	 * Retourne un objet Image avec tous les attributs
	 * Entrée : Objet Image avec id_image
	 */
	public static Image trouverAvecId(Image i) throws SQLException {
		try {
			String sql = "SELECT * FROM IMAGE WHERE id_image = ?" ;
			PreparedStatement statement = accesBDD.getInstance().prepareStatement(sql);
			statement.setObject(1, i.getIdImage());
	        ResultSet rs = statement.executeQuery();
	        rs.next();
	        i.setChemin((rs.getString("CHEMIN")));
	        i.setAppareilPhoto(rs.getString("APN"));
	        i.setResolution(rs.getString("RESOLUTION"));
	        i.setDistFocale(rs.getString("DISTANCE_FOCALE"));
	        i.setOuverture(rs.getString("OUVERTURE"));
	        i.setObjectif(rs.getString("OBJECTIF"));
	        i.setSensibiliteISO(rs.getString("SENSIBILITE_ISO"));
	        i.setVitesseObturation(rs.getString("VITESSE_OBTURATION"));
			statement.close();
			return i ;
		}
		catch(Exception e) {
			System.out.println(e) ;
			return null ;
		}
	}
	
}